package com.zhangtai.modules.vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * 
 *
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2020-07-30 09:53:02
 */
@Data
@TableName("tb_promotion")
public class PromotionVo implements Serializable {
	private static final long serialVersionUID = 1L;


			private String name;
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
			private Long oid;

			/**
		 * 晋升日期
		 */
			@ApiModelProperty(value="晋级日期",required = false)
			private Date promotionDate;
			/**
		 * 晋升类型，1：专业职级晋升，2：管理职级晋升
		 */
			@NotNull(message = "晋升职级类型不能为空")
			@ApiModelProperty(value="晋升职级类型，1：专业职级晋升，2：管理职级晋升",required = true)
			private Integer promotionType;

			/**
		 * 晋级后部门id
		 */
			@ApiModelProperty(value="晋级后部门id",required = true)
			private Long afterUnitId;

		/**
		 * 晋级后部门名称
	 	*/
		@ApiModelProperty(value="晋级后部门名称",required = true)
			private String afterUnitName;

			/**
		 * 晋级后公司ID
		 */
			@ApiModelProperty(value="晋级后公司id",required = true)
			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			private Long afterOrgId;

	/**
	 * 晋级后公司名称
	 */
	@ApiModelProperty(value="晋级后公司名称",required = true)
			private String afterOrgName;

			/**
		 * 晋级后岗位id
		 */
			@ApiModelProperty(value="晋级后岗位id",required = true)
			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			private Long afterJobId;

	/**
	 * 晋级后岗位名称
	 */
	@ApiModelProperty(value="晋级后岗位名称",required = true)
			private String afterJobName;

	@ApiModelProperty(value="晋级后职级id",required = true)
	private Long afterJobLevelId;

	@ApiModelProperty(value="晋级后职级名称",required = true)
	private String afterJobLevel;



	@ApiModelProperty(value="开始考察时间",required = true)
			private Date beginExpeditionDate;

	@ApiModelProperty(value="考察结束时间",required = true)
			private Date endExpeditionDate;

	@ApiModelProperty(value="考察天数",required = true)
			private Integer expeditionDays;

	@ApiModelProperty(value="晋级原因",required = true)
	private String reason;

	@ApiModelProperty(value="月薪固定",required = false)
	private BigDecimal monthlySalary;

	@ApiModelProperty(value="模块or绩效",required = false)
	private BigDecimal performance;

	@ApiModelProperty(value="晋升种类 0晋升 1降级",required = false)
	@NotNull(message = "晋升种类不能为空")
	private Integer promotionKind;

	private String code;

	@ApiModelProperty(value="晋升前职级类型",required = false)
	private String afterJobType;

	@ApiModelProperty(value="晋升Id",required = false)
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long promotionId;

	/**
	 * 试用期月份
	 */
	@ApiModelProperty(value="试用期月份",required = false)
	private Integer probationday;


	@ApiModelProperty(value="文件附件",required = false)
	private List<String> fileUrl;
	@ApiModelProperty(value="晋升人字文",required = false)
	private String promotionCode;
}
